// 1. 引入express
const express = require("express");

const data = [
  {
    id: "35575567",
    title: "沙丘2",
    score: "8.2",
    poster: "p2902227445.webp",
  },
  {
    id: "36151692",
    title: "周处除三害",
    score: "8.1",
    poster: "p2905021483.webp",
  },
  {
    id: "36173827",
    title: "被我弄丢的你",
    score: "0",
    poster: "p2905260399.webp",
  },
  {
    id: "35588223",
    title: "孔秀",
    score: "0",
    poster: "p2904899717.webp",
  },
  {
    id: "36081094",
    title: "热辣滚烫",
    score: "7.8",
    poster: "p2904304396.webp",
  },
  {
    id: "36208094",
    title: "第二十条",
    score: "7.6",
    poster: "p2903145026.webp",
  },
  {
    id: "36402339",
    title: "陌路狂刀",
    score: "0",
    poster: "p2904960565.webp",
  },
  {
    id: "35520056",
    title: "阿盖尔：神秘特工",
    score: "5.9",
    poster: "p2902244780.webp",
  },
  {
    id: "36369452",
    title: "飞驰人生2",
    score: "7.7",
    poster: "p2903066285.webp",
  },
  {
    id: "36493954",
    title: "戏杀",
    score: "0",
    poster: "p2905144688.webp",
  },
  {
    id: "34846514",
    title: "蜘蛛夫人：超感觉醒",
    score: "5.1",
    poster: "p2903717056.webp",
  },
  {
    id: "3001114",
    title: "沙丘",
    score: "7.7",
    poster: "p2687443734.webp",
  },
  {
    id: "35749977",
    title: "追月",
    score: "0",
    poster: "p2904643060.webp",
  },
  {
    id: "35208025",
    title: "大话情圣",
    score: "7.2",
    poster: "p2903995450.webp",
  },
  {
    id: "36438166",
    title: "熊出没·逆转时空",
    score: "6.9",
    poster: "p2902482452.webp",
  },
  {
    id: "36530235",
    title: "还是觉得你最好2",
    score: "6.5",
    poster: "p2904625136.webp",
  },
  {
    id: "35725869",
    title: "年会不能停！",
    score: "8.1",
    poster: "p2901057189.webp",
  },
  {
    id: "35593344",
    title: "奥本海默",
    score: "8.8",
    poster: "p2897212051.webp",
  },
  {
    id: "36691531",
    title: "午夜6号房",
    score: "0",
    poster: "p2902148419.webp",
  },
  {
    id: "35208463",
    title: "三大队",
    score: "7.6",
    poster: "p2901703469.webp",
  },
  {
    id: "35736202",
    title: "狗神",
    score: "8.1",
    poster: "p2901534046.webp",
  },
  {
    id: "35282433",
    title: "大雨",
    score: "6.4",
    poster: "p2903106569.webp",
  },
  {
    id: "35623555",
    title: "八戒之天蓬下界",
    score: "0",
    poster: "p2903958317.webp",
  },
  {
    id: "30444942",
    title: "海王2：失落的王国",
    score: "6.3",
    poster: "p2900515564.webp",
  },
  {
    id: "36750619",
    title: "因你而动",
    score: "0",
    poster: "p2903731761.webp",
  },
  {
    id: "26311973",
    title: "唐人街探案",
    score: "7.7",
    poster: "p2302930556.webp",
  },
  {
    id: "36538847",
    title: "泰勒·斯威夫特：时代巡回演唱会",
    score: "9.3",
    poster: "p2901984940.webp",
  },
  {
    id: "1783457",
    title: "功夫熊猫",
    score: "8.2",
    poster: "p1597238857.webp",
  },
  {
    id: "36314920",
    title: "开心超人之时空营救",
    score: "0",
    poster: "p2902735920.webp",
  },
  {
    id: "1291838",
    title: "红猪",
    score: "8.6",
    poster: "p2899263477.webp",
  },
  {
    id: "2353023",
    title: "驯龙高手",
    score: "8.8",
    poster: "p2210954024.webp",
  },
  {
    id: "27180759",
    title: "送我上青云",
    score: "7.0",
    poster: "p2565751382.webp",
  },
  {
    id: "26642033",
    title: "小黄人大眼萌：神偷奶爸前传",
    score: "7.1",
    poster: "p2877522569.webp",
  },
  {
    id: "1292523",
    title: "侏罗纪公园",
    score: "8.3",
    poster: "p2076443176.webp",
  },
  {
    id: "30176790",
    title: "梅艳芳",
    score: "6.8",
    poster: "p2706812406.webp",
  },
  {
    id: "26354572",
    title: "欢乐好声音",
    score: "8.1",
    poster: "p2411622136.webp",
  },
  {
    id: "6801423",
    title: "女王",
    score: "7.4",
    poster: "p2625278281.webp",
  },
  {
    id: "36619920",
    title: "人民万岁",
    score: "0",
    poster: "p2902273141.webp",
  },
  {
    id: "35496650",
    title: "舒克贝塔·五角飞碟",
    score: "6.2",
    poster: "p2902498511.webp",
  },
  {
    id: "27089205",
    title: "卡拉斯：为爱而声",
    score: "8.1",
    poster: "p2558617202.webp",
  },
  { id: "35494829", title: "红毯先生", poster: "p2905249058.webp" },
  { id: "35633969", title: "灿烂的她", poster: "p2903692912.webp" },
  { id: "35579911", title: "挑战", poster: "p2905090551.webp" },
  { id: "35634595", title: "生死赛车", poster: "p2905290286.webp" },
  { id: "36676105", title: "阿莫阿依", poster: "p2904569350.webp" },
  { id: "35622743", title: "幸福核桃", poster: "p2904847068.webp" },
  { id: "26715496", title: "功夫熊猫4", poster: "p2903578097.webp" },
  { id: "35610045", title: "堡垒", poster: "p2905248726.webp" },
  { id: "34929985", title: "贞胜", poster: "p2905333475.webp" },
  { id: "36760937", title: "重山之外", poster: "p2904000164.webp" },
];

// 2. 生成应用对象
const app = express();

// 4. 设置路由和中间件
// 需求：用户访问服务器，服务器返回电影列表数据
/*
  常用请求方式：
    GET     -> 查
    POST    -> 增
    PUT     -> 改
    DELETE  -> 删
    OPTIONS -> 预检请求的请求方式
*/
app.use(express.static("public"));

app.get("/movies", (req, res) => {
  /*
    req -> request 请求对象
      浏览器发送请求给服务器，发送过来内容就是请求报文，都在req对象上
    res -> response 响应对象
      将来服务器要返回响应给浏览器，响应的内容都需要在res上设置，浏览器才能接受到
  */
  // 1. js对象转json字符串 2. 设置响应头：content-type: application/json
  res.json({
    // status 响应状态码（代表请求是否成功）：1. 2xx 成功 2. 非 2xx 失败
    code: 200, // 功能状态码（代表功能是否成功）：1. 200 成功 2. 非 200 失败
    message: "",
    ok: true,
    data: data.map((item) => {
      // 成功的数据
      return {
        ...item,
        poster: "http://localhost:3000/" + item.poster,
      };
    }),
  });
});

// 3. 监听端口号，启动服务
app.listen(3000, "localhost", (err) => {
  // 错误优先机制
  if (err) {
    console.log("服务器启动失败", err);
    return;
  }

  console.log("服务器启动成功：http://localhost:3000");
});
